#ifndef _LINEA_H_
#define _LINEA_H_

#include <iostream>
#include "Punto.h"
#include "Primitiva.h"

class Linea : public Primitiva
{
    public:
        Linea()                 { };
        Linea(const Linea& l);
        Linea(const Punto& p, const Punto& q);
        ~Linea()                { };

        Linea& operator=(const Linea& l);

        const Punto& GetQ() const   { return q; };

        /* Asigna el punto p a q */
        void SetQ(const Punto& p)   { q.SetX(p.GetX()); q.SetY(p.GetY()); };
        void Dibujar();
        /* Suma los valores x e y a las propiedades del punto */
        void Move(int x, int y);
        /* Incrementa o decrementa los valores.
        * El primer bool indica si es incremento (true) o decremento (false)
        * El segundo y tercero indican modificación en x y en y
         */
        void Redimensionar(bool, bool, bool);
        void Rotar(int);

    private:
        Punto q;
};

#endif // _LINEA_H_
